package com.gitee.feizns.quickstart.web.restful.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * restful 资源类型（不设置类型为标注类的类型）
 * @author feizns
 * @since 2023/04/07
 */
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface RestType {

    /**
     * 声明当前控制器所操作的资源类型（默认为标注该注解的类型为Restful资源类型）
     * @return 资源类型
     */
    Class<?> value() default Entity.class;

    /**
     * 编号属性名
     * @return {@link String}
     */
    String id() default "id";

    /**
     * 资源名称默认为资源类名
     * @return {@link String}
     */
    String name() default "";

    /**
     * 该类型实际为标明注解的实体
     * @author feizns
     * @since 2023/07/11
     */
    class Entity {}

}
